package com.wx.gof.principle.demeter;

/**
 * @ClassName Application
 * @Author wx
 * @Description 应用程序-迪米特法则(一个对象应该对其他的对象保持最少了解-最少知道原则，对于没有关系的对象尽量不要出现)
 * @Date 2018-12-02
 */
public class Application {
    public static void main(String[] args) {
        /**
         * boss要查看课程，去通过助手查看，老板与助手是有依赖关系的，但是与课程没有关系，所以此处打破了迪米特法则，
         * 在commandCheckNumber方法中出现了课程对象
         */
        Boss boss = new Boss();
        TeamLeader teamLeader = new TeamLeader();
        boss.commandCheckNumber(teamLeader);

        /**
         * boss要查看课程，去通过助手查看，老板与助手是有依赖关系的,助手与课程有关系，commandCheckNumberV2方法内只有助手对象，所以符合迪米特法则。
         */
        boss.commandCheckNumberV2(teamLeader);
    }
}
